perm filename TAPMUS.F4[EX2,LCS] blob
sn#197652 filedate 1976-01-19 generic text, type T, neo UTF8
00100 C FEB 21,73 ******
00150 COPIES .DMD FILES TO AND FROM TAPE FOR FURTHER PROCESSING. *****
00200 C LOAD WITH "CVTIO" AND "CVTALC"-- TYPE '-1' FOR FINAL NAME TO RETURN TO NAME #1.
00210 C TYPE 'HELP' FOR INFO.
00300 C TO ADD TO DATA ALREADY ON TAPE, TYPE 'END' AS NAME #1.
00500 C TO RESTORE TO DSK, TYPE 'RESTORE'. TO MOVE TO MIDDLE OF TAPE, TYPE
00600 C 'NAME END'. 'NAME' WILL BE LAST FILE PASSED ON TAPE.
00700 C 'BACKSPACE' MOVES BACK TO START OF CURRENT FILE.
00800 C 'COPY' COPIES FROM MTA1 TO MTA0. 'RESET' INSURES EOT POSITION.
00900 DIMENSION JSB(1024)
01000 EQUIVALENCE (JSB(5),JSB5),(JSB(3),JSB3),(JSB(4),JSB4)
01100 100 FORMAT(' TYPE NAME #1'/)
01200 200 FORMAT(' TYPE FINAL NAME'/)
01300 300 FORMAT(2XA5,' MAXAMP=',I5)
01400 400 FORMAT(2XA5,1XA5,' MAXAMP=',I5)
01500 401 FORMAT(A5,1XA5)
01600 500 FORMAT(' POSSIBLE COMMANDS:'/' END'/' NAME END'/' BACKSPACE'/
01625 1,' RESTORE'/' COPY (COPIES FROM MTA1 TO MTA0)'/' REWIND'/'
01640 1, RESET (REPOSITIONS EOT)'/'
01650 1 --IF JUST NAMES ARE GIVEN, THEY WILL BE WRITTEN ON MTA0'/
01675 1' TYPE -1 TO BACKUP TO NAME #1'/)
01700 600 FORMAT(' MOVING TO END OF TAPE')
01800 800 FORMAT(' ******** REMEMBER MAXAMP NUMBER!!')
01900 700 FORMAT(A1)
02000 900 FORMAT(' WRITE ON MTA0??'/)
02100 RESTO=0
02200 NM2=0
02300 COPY=0
02400 JNM='AAAAA'
02500 54 TYPE 100
02550 RESET=0
02600 CALL GETTAP
02700 ACCEPT 401,NAME,NM2
02800 IF(NAME.NE.'HELP')GO TO 541
02825 TYPE 500
02850 GO TO 54
02875 541 IF(NAME.EQ.'BACKS')GO TO 440
02900 IF(NAME.EQ.'RESTO')RESTO=-1.
03000 IF((NAME.EQ.'END'.OR.NM2.NE.' ').AND.RESTO.EQ.0)GO TO 220
03100 IF(NAME.NE.'REWIN')GO TO 1201
03200 REWIND 16
03300 GO TO 54
03400 1201 IF(NAME.EQ.' ')NAME='MUSAA'
03450 IF(NAME.EQ.'RESET')GO TO 4400
03500 2 JNM=JNM+((NAME-JNM)/256*256)
03600 KNM=JNM
03700 C AUTOMATICALLY SETS BASIC NAME TO 'A' ENDING.
03800 1002 TYPE 200
03900 ACCEPT 401,NM2
04000 IF(NM2.EQ.'-1')GO TO 54
04100 IF(RESTO)GO TO 7
04200 IF(NM2.EQ.' ')NM2=NAME
04300 TYPE 900
04400 ACCEPT 700,K
04500 IF(K.NE.'Y')GO TO 54
04600 IF(NAME.EQ.'COPY')GO TO 777
04700 11 CALL GETFIL(NAME)
04800 CALL FASTIN(JSB(1),128)
04900 JSB4=9999
05000 JSB5=9998
05100 JSB3=NAME
05200 CALL TOTAPE(JSB(1),128)
05300 JSC=JSB(1)
05500 111 CALL FASTIN(JSB(1),JSC)
05600 CALL TOTAPE(JSB(1),JSC)
05700 IF(JSB(JSC).EQ.0)GO TO 111
05800 6 TYPE 300,NAME,JSB(JSC)
05900 IF(NAME.EQ.NM2)GO TO 22
06000 NAME=NAME+2
06100 IF(NAME.LE.JNM+50)GO TO 11
06200 JNM=JNM+256
06300 IF(JNM.LE.KNM+6400)GO TO 1017
06400 KNM=JNM+26112
06500 JNM=KNM
06600 C RAISES 'AAAZA' TO 'AABAA'
06700 1017 NAME=JNM
06800 GO TO 11
06900
07000 222 NAME=NM2
07100 22 JSB(1)=-1
07200 JSB3=NAME
07300 JSB4=9999
07400 JSB5=9998
07500 CALL TOTAPE(JSB(1),128)
07600 C '-1' MARKS END OF THIS BATCH OF DATA.
07700 C '9999' IDENTIFIES IT AS MUSIC DATA WHEN TAPE IS READ.
07800 CALL FINTAP
07900 CALL BACKSP
08000 CALL BACKSP
08100 TYPE 800
08200 CALL EXIT
08300
08400 C ***** NEXT MOVES TO END OF TAPE ****
08500 220 TYPE 600
08600 NM2=NAME
08700 210 CALL INTAPE(JSB(1),128)
08800 IF(JSB5.NE.9998)GO TO 210
08900 JSC=JSB(1)
09000 N=JSB3
09100 IF(JSC.NE.-1)GO TO 310
09200 CC NM2=' '
09300 230 TYPE 400,NM2,JSB3
09400 CALL BACKSP
09500 GO TO 54
09600 310 CALL INTAPE(JSB(1),JSC)
09700 IF(JSB(JSC).EQ.0)GO TO 310
09800 TYPE 300,N,JSB(JSC)
09900 IF(N.EQ.NM2)GO TO 54
10000 GO TO 210
10010
10020 4400 RESET=-1.
10030 CALL BACKSPACE
10040 CALL BACKSPACE
10050 CALL BACKSPACE
10060 CALL BACKSPACE
10065 NAME='ENDOF'
10070 GO TO 220
10100
10200 C ***** NEXT BACKSPACES *****
10300 440 CALL BACKSPACE
10400 CALL BACKSPACE
10500 CALL INTAPE(JSB(1),128)
10600 IF(JSB4.NE.9999)GO TO 440
10700 NM2=' REDO'
10800 GO TO 230
10900
11000 C ***** NEXT RESTORES FILES TO DSK OR COPIES TAPE TO TAPE ******
11100 777 CALL MTA1
11200 COPY=-1.
11300 7 K=5
11400 77 IF(RESTO)CALL INTAPE(JSB(1),128)
11500 IF(COPY)CALL INMTA1(JSB(1),128)
11600 K=K-1
11700 IF(COPY.AND.K)GO TO 22
11800 C JUMP TO PUT PROPER EOT MARK.
11900 CC** NOV.6,71 IF(JSB(1).OR.K)CALL EXIT
11950 IF(K)CALL EXIT
11975 IF(JSB(1).GE.0)GO TO 771
11987 IF(COPY)GO TO 222
11993 CALL EXIT
12000 C MAR. 13,71
12100 CC IF(JSB(1).EQ.-1.OR.JSB4.NE.9999)GO TO 77
12200 771 IF(JSB4.NE.9999)GO TO 77
12300 K=5
12400 JSC=JSB(1)
12500 KNM=' '
12600 N=JSB3
12700 IF(COPY)GO TO 88
12800 CALL PUTFIL(JSB3)
12900 CALL FASTOU(JSB(1),128)
13000 GO TO 8
13100 88 CALL TOTAPE(JSB(1),128)
13200
13300 8 IF(COPY)GO TO 188
13400 CALL INTAPE(JSB(1),JSC)
13500 CALL FASTOU(JSB(1),JSC)
13600 GO TO 288
13700 188 CALL INMTA1(JSB(1),JSC)
13800 CALL TOTAPE(JSB(1),JSC)
13900 288 IF(JSB(JSC).EQ.0)GO TO 8
14000 CC TYPE 400,KNM,N
14100 TYPE 400,KNM,N,JSB(JSC)
14200 CC TYPE 300,N,JSB(JSC)
14300 IF(RESTO)CALL FINFIL
14400 IF(N.NE.NM2)GO TO 7
14500 IF(COPY)GO TO 222
14600 END